-version_conf = configuration_data()
-version_conf.set('VERSION', meson.project_version())
+gidocgen = find_program('gi-docgen', required: get_option('gtk_doc'))
+
+doc_conf = configuration_data()
+doc_conf.set('MUTTER_API_VERSION', mutter_api_version)
+
+gi_docgen_common_args = [
+ '--quiet',
+ '--no-namespace-dir',
+]
+
+if get_option('werror')
+ gi_docgen_common_args += ['--fatal-warnings']
+endif
+
+docs_dir = datadir / 'doc'
subdir('shell')
subdir('st')
-private_headers = [
- 'gactionmuxer.h',
- 'gactionobservable.h',
- 'gactionobserver.h',
- 'shell-network-agent.h',
-]
-
-exclude_directories = [
- 'calendar-server',
- 'hotplug-sniffer',
- 'st',
- 'tray'
-]
-
-ifaces = [
- ['org.gnome.Shell.Screenshot', 'org.gnome.Shell.Screenshot.xml'],
- ['org.gnome.ShellSearchProvider', 'org.gnome.Shell.SearchProvider.xml'],
- ['org.gnome.ShellSearchProvider2', 'org.gnome.Shell.SearchProvider2.xml']
-]
-foreach iface : ifaces
- custom_target(iface[0] + ' docs',
- input: '../../../data/dbus-interfaces/@0@.xml'.format(iface[0]),
- output: 'doc-gen-' + iface[1],
- command: [
- 'gdbus-codegen',
- '--interface-prefix=@0@.'.format(iface[0]),
- '--generate-docbook', 'doc-gen',
- '--output-directory', '@OUTDIR@',
- '@INPUT@'
- ],
- build_by_default: true
- )
-endforeach
-
-configure_file(
- input: 'version.xml.in',
- output: 'version.xml',
- configuration: version_conf
+shell_toml = configure_file(
+ input: 'shell.toml.in',
+ output: 'shell.toml',
+ configuration: doc_conf
)
-gnome.gtkdoc('shell',
- main_sgml: 'shell-docs.sgml',
- src_dir: [
- join_paths(meson.project_source_root(), 'src'),
- join_paths(meson.project_build_root(), 'src')
- ],
- scan_args: [
- '--ignore-headers=' + ' '.join(private_headers + exclude_directories)
+custom_target('shell-doc',
+ input: [shell_toml, libshell_gir[0]],
+ output: 'shell',
+ command: [
+ gidocgen,
+ 'generate',
+ gi_docgen_common_args,
+ '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src'),
+ '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src/st'),
+ '--add-include-path=@0@'.format(mutter_dep.get_variable('girdir')),
+ '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../subprojects/gvc'),
+ '--config=@INPUT0@',
+ '--output-dir=@OUTPUT@',
+ '--content-dir=@0@'.format(meson.current_source_dir()),
+ '@INPUT1@',
],
- install: true
+ install: true,
+ install_dir: docs_dir,
)
+++ /dev/null
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
-[
- <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
- <!ENTITY version SYSTEM "version.xml">
-]>
-<book id="index">
- <bookinfo>
- <title>Shell Reference Manual</title>
- <releaseinfo>
- for Shell &version;.
- <!--The latest version of this documentation can be found on-line at
- <ulink role="online-location" url="http://[SERVER]/shell/index.html">http://[SERVER]/shell/</ulink>.-->
- </releaseinfo>
- </bookinfo>
-
- <chapter>
- <title>Actors</title>
- <xi:include href="xml/shell-stack.xml"/>
- </chapter>
- <chapter>
- <title>Application tracking</title>
- <xi:include href="xml/shell-app.xml"/>
- <xi:include href="xml/shell-app-usage.xml"/>
- <xi:include href="xml/shell-window-tracker.xml"/>
- </chapter>
- <chapter>
- <title>Search</title>
- <xi:include href="xml/shell-app-system.xml"/>
- </chapter>
- <chapter>
- <title>Tray Icons</title>
- <xi:include href="xml/shell-tray-icon.xml"/>
- <xi:include href="xml/shell-tray-manager.xml"/>
- </chapter>
- <chapter>
- <title>Integration helpers and utilities</title>
- <xi:include href="doc-gen-org.gnome.Shell.SearchProvider.xml"/>
- <xi:include href="doc-gen-org.gnome.Shell.SearchProvider2.xml"/>
- <xi:include href="xml/shell-global.xml"/>
- <xi:include href="xml/shell-action-modes.xml"/>
- <xi:include href="xml/shell-wm.xml"/>
- <xi:include href="xml/shell-util.xml"/>
- <xi:include href="xml/shell-mount-operation.xml"/>
- <xi:include href="xml/shell-polkit-authentication-agent.xml"/>
- </chapter>
- <!-- FIXME:
- Not generated at the moment, find out whether to blame gtk-doc or meson
- -->
- <!--
- <chapter id="object-tree">
- <title>Object Hierarchy</title>
- <xi:include href="xml/tree_index.sgml"/>
- </chapter>
- -->
- <index id="api-index-full">
- <title>API Index</title>
- <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
- </index>
- <index id="deprecated-api-index" role="deprecated">
- <title>Index of deprecated API</title>
- <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
- </index>
-
- <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
-</book>
--- /dev/null
+[library]
+namespace = "Shell"
+version = "@MUTTER_API_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/gnome-shell/"
+repository_url = "https://gitlab.gnome.org/GNOME/gnome-shell.git"
+website_url = "https://www.gnome.org"
+license = "GPL-2.0-or-later"
+description = "Shell"
+dependencies = ["GObject-2.0", "Gio-2.0", "Meta-@MUTTER_API_VERSION@", "Clutter-@MUTTER_API_VERSION@"]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://docs.gtk.org/gobject"
+
+ [dependencies."Gio-2.0"]
+ name = "Gio"
+ description = "GObject Interfaces and Objects, Networking, IPC, and I/O"
+ docs_url = "https://docs.gtk.org/gio"
+
+ [dependencies."Meta-@MUTTER_API_VERSION@"]
+ name = "Meta"
+ description = "The mutter display server, window manager and compositor library"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/mutter/meta/"
+
+ [dependencies."Clutter-@MUTTER_API_VERSION@"]
+ name = "Clutter"
+ description = "An OpenGL based 'interactive canvas' library"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/mutter/clutter/"
+
+[theme]
+name = "basic"
+show_index_summary = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/HEAD/"
+
+[extra]
+urlmap_file = "urlmap.js"
--- /dev/null
+baseURLs = [
+ [ 'GLib', 'https://docs.gtk.org/glib/' ],
+ [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+ [ 'Gio', 'https://docs.gtk.org/gio/' ],
+ [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ],
+ [ 'Meta', 'https://gnome.pages.gitlab.gnome.org/mutter/meta/' ],
+ [ 'Mtk', 'https://gnome.pages.gitlab.gnome.org/mutter/mtk/' ],
+ [ 'Cogl', 'https://gnome.pages.gitlab.gnome.org/mutter/cogl/' ],
+ [ 'Clutter', 'https://gnome.pages.gitlab.gnome.org/mutter/clutter/' ],
+ [ 'St', 'https://gnome.pages/gitlab.gnome.org/gnome-shell/st/' ],
+]
-private_headers = [
- 'st-private.h',
- 'st-theme-node-private.h'
-]
-
-configure_file(
- input: 'version.xml.in',
- output: 'version.xml',
- configuration: version_conf
+st_toml = configure_file(
+ input: 'st.toml.in',
+ output: 'st.toml',
+ configuration: doc_conf
)
-gnome.gtkdoc('st',
- main_sgml: 'st-docs.sgml',
- src_dir: [
- join_paths(meson.project_source_root(), 'src', 'st'),
- join_paths(meson.project_build_root(), 'src', 'st')
- ],
- scan_args: [
- '--ignore-headers=' + ' '.join(private_headers),
- '--rebuild-sections'
+custom_target('st-doc',
+ input: [st_toml, libst_gir[0]],
+ output: 'st',
+ command: [
+ gidocgen,
+ 'generate',
+ gi_docgen_common_args,
+ '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src'),
+ '--add-include-path=@0@'.format(meson.current_build_dir() / '../../../src/st'),
+ '--add-include-path=@0@'.format(mutter_dep.get_variable('girdir')),
+ '--config=@INPUT0@',
+ '--output-dir=@OUTPUT@',
+ '--content-dir=@0@'.format(meson.current_source_dir()),
+ '@INPUT1@',
],
- install: true
+ install: true,
+ install_dir: docs_dir,
)
+++ /dev/null
-<?xml version="1.0"?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
- "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd"
-[
- <!ENTITY % local.common.attrib "xmlns:xi CDATA #FIXED 'http://www.w3.org/2003/XInclude'">
- <!ENTITY version SYSTEM "version.xml">
-]>
-<book id="index">
- <bookinfo>
- <title>St Reference Manual</title>
- <releaseinfo>
- for St &version;.
- <!--The latest version of this documentation can be found on-line at
- <ulink role="online-location" url="http://[SERVER]/st/index.html">http://[SERVER]/st/</ulink>.-->
- </releaseinfo>
- </bookinfo>
-
- <part>
- <title>API reference</title>
- <chapter id="base">
- <title>Abstract classes and Interfaces</title>
- <xi:include href="xml/st-widget.xml"/>
- <xi:include href="xml/st-widget-accessible.xml"/>
- <xi:include href="xml/st-scrollable.xml"/>
- </chapter>
- <chapter id="widgets">
- <title>Widgets</title>
- <xi:include href="xml/st-button.xml"/>
- <xi:include href="xml/st-drawing-area.xml"/>
- <xi:include href="xml/st-entry.xml"/>
- <xi:include href="xml/st-icon.xml"/>
- <xi:include href="xml/st-label.xml"/>
- </chapter>
- <chapter id="containers">
- <title>Containers</title>
- <xi:include href="xml/st-bin.xml"/>
- <xi:include href="xml/st-box-layout.xml"/>
- <xi:include href="xml/st-scroll-view.xml"/>
- </chapter>
-
- <chapter id="styling">
- <title>Styling</title>
- <xi:include href="xml/st-theme.xml"/>
- <xi:include href="xml/st-theme-context.xml"/>
- <xi:include href="xml/st-theme-node.xml"/>
- <xi:include href="xml/st-theme-node-transition.xml"/>
- <xi:include href="xml/st-texture-cache.xml"/>
- </chapter>
- </part>
- <!-- FIXME:
- Not generated at the moment, find out whether to blame gtk-doc or meson
- -->
- <!--
- <chapter id="object-tree">
- <title>Object Hierarchy</title>
- <xi:include href="xml/tree_index.sgml"/>
- </chapter>
- -->
- <index id="api-index-full">
- <title>API Index</title>
- <xi:include href="xml/api-index-full.xml"><xi:fallback /></xi:include>
- </index>
- <index id="deprecated-api-index" role="deprecated">
- <title>Index of deprecated API</title>
- <xi:include href="xml/api-index-deprecated.xml"><xi:fallback /></xi:include>
- </index>
-
- <xi:include href="xml/annotation-glossary.xml"><xi:fallback /></xi:include>
-</book>
--- /dev/null
+[library]
+namespace = "St"
+version = "@MUTTER_API_VERSION@"
+browse_url = "https://gitlab.gnome.org/GNOME/gnome-shell/"
+repository_url = "https://gitlab.gnome.org/GNOME/gnome-shell.git"
+website_url = "https://www.gnome.org"
+license = "LGPL-2.0-or-later"
+description = "Shell Toolkit"
+dependencies = ["GObject-2.0", "Gio-2.0", "Clutter-@MUTTER_API_VERSION@"]
+devhelp = true
+search_index = true
+
+ [dependencies."GObject-2.0"]
+ name = "GObject"
+ description = "The base type system library"
+ docs_url = "https://docs.gtk.org/gobject"
+
+ [dependencies."Gio-2.0"]
+ name = "Gio"
+ description = "GObject Interfaces and Objects, Networking, IPC, and I/O"
+ docs_url = "https://docs.gtk.org/gio"
+
+ [dependencies."Clutter-@MUTTER_API_VERSION@"]
+ name = "Clutter"
+ description = "An OpenGL based 'interactive canvas' library"
+ docs_url = "https://gnome.pages.gitlab.gnome.org/mutter/clutter/"
+
+[theme]
+name = "basic"
+show_index_summary = true
+
+[source-location]
+base_url = "https://gitlab.gnome.org/GNOME/gnome-shell/-/blob/HEAD/"
+
+[extra]
+urlmap_file = "urlmap.js"
--- /dev/null
+baseURLs = [
+ [ 'GLib', 'https://docs.gtk.org/glib/' ],
+ [ 'GObject', 'https://docs.gtk.org/gobject/' ],
+ [ 'Gio', 'https://docs.gtk.org/gio/' ],
+ [ 'Pango', 'https://docs.gtk.org/pango/' ],
+ [ 'GdkPixbuf', 'https://docs.gtk.org/gdk-pixbuf/' ],
+ [ 'Clutter', 'https://gnome.pages.gitlab.gnome.org/mutter/clutter/' ],
+ [ 'Cogl', 'https://gnome.pages.gitlab.gnome.org/mutter/cogl/' ],
+ [ 'Meta', 'https://gnome.pages.gitlab.gnome.org/mutter/meta/' ],
+]
schemas_dep = dependency('gsettings-desktop-schemas', version: schemas_req)
gnome_desktop_dep = dependency('gnome-desktop-4', version: gnome_desktop_req)
+gidocgen_dep = dependency('gi-docgen',
+ version: '>= 2021.1',
+ fallback: ['gi-docgen', 'dummy_dep'],
+ required: get_option('gtk_doc'))
+
nm_deps = []
if get_option('networkmanager')
nm_deps += dependency('libnm', version: nm_req)
libst_gir[0]
]
-gnome.generate_gir(libshell,
+libshell_gir = gnome.generate_gir(libshell,
sources: libshell_gir_sources,
nsversion: mutter_api_version,
namespace: 'Shell',
--- /dev/null
+[wrap-git]
+directory=gi-docgen
+url=https://gitlab.gnome.org/GNOME/gi-docgen.git
+push-url=ssh://git@gitlab.gnome.org:GNOME/gi-docgen.git
+revision=main
+depth=1